Skip to content

Commit 237cb41

Browse files
DOC Rewrite readme in markdown (#283)
* rst to md * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * cleanup * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 649f4d6 commit 237cb41

File tree

5 files changed

+1014
-920
lines changed

5 files changed

+1014
-920
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ repos:
77
- id: check-added-large-files
88
- id: check-case-conflict
99
- id: check-merge-conflict
10-
exclude: README.rst
10+
exclude: README.MD
1111
- id: check-symlinks
1212
- id: check-yaml
1313
- id: debug-statements

CHANGELOG.md

Lines changed: 298 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,298 @@
1+
## Changelog
2+
3+
### 5.0.0: (July 2nd, 2025)
4+
5+
- Dropped support for Python 3.9 (pyodide/sphinx-js-fork#7)
6+
- Dropped support for typedoc 0.15, added support for typedoc 0.25--0.28 (
7+
pyodide/sphinx-js-fork#11, pyodide/sphinx-js-fork#22,
8+
pyodide/sphinx-js-fork#31, pyodide/sphinx-js-fork#39,
9+
pyodide/sphinx-js-fork#41, pyodide/sphinx-js-fork#43
10+
pyodide/sphinx-js-fork#52, pyodide/sphinx-js-fork#53,
11+
pyodide/sphinx-js-fork#54, pyodide/sphinx-js-fork#174,
12+
#266)
13+
- Added handling for TypeScript type parameters and type bounds.
14+
(pyodide/sphinx-js-fork#25)
15+
- Only monkeypatch Sphinx classes when sphinx_js extension is used
16+
(pyodide/sphinx-js-fork#27)
17+
- Allow using installation of `typedoc` or `jsdoc` from `node_modules`
18+
instead of requiring global install. (pyodide/sphinx-js-fork#33)
19+
- Handle markdown style codepens correctly in typedoc comments.
20+
(pyodide/sphinx-js-fork#47)
21+
- Added support for destructuring the documentation of keyword arguments in
22+
TypeScript using the `@destructure` tag or the
23+
`shouldDestructureArg` hook. (
24+
pyodide/sphinx-js-fork#48, pyodide/sphinx-js-fork#74,
25+
pyodide/sphinx-js-fork#75, pyodide/sphinx-js-fork#101,
26+
pyodide/sphinx-js-fork#128)
27+
- Added rendering for cross references in TypeScript types. (
28+
pyodide/sphinx-js-fork#51, pyodide/sphinx-js-fork#56,
29+
pyodide/sphinx-js-fork#67, pyodide/sphinx-js-fork#81,
30+
pyodide/sphinx-js-fork#82, pyodide/sphinx-js-fork#83,
31+
pyodide/sphinx-js-fork#153, pyodide/sphinx-js-fork#160)
32+
- Added rendering for function types in TypeScript documentation. (
33+
pyodide/sphinx-js-fork#55, pyodide/sphinx-js-fork#58,
34+
pyodide/sphinx-js-fork#59)
35+
- Add async prefix to async functions (pyodide/sphinx-js-fork#65).
36+
- Added the `sphinx-js_type` css class around all types in documentation. This
37+
allows applying custom css just to types (pyodide/sphinx-js-fork#85)
38+
- Added `ts_type_bold` config option that applies css to `.sphinx-js_type`
39+
to render all types as bold.
40+
- Added `js:automodule` directive (pyodide/sphinx-js-fork#108)
41+
- Added `js:autosummary` directive (pyodide/sphinx-js-fork#109)
42+
- Added rendering for `queryType` (e.g., `let y: typeof x;`)
43+
(pyodide/sphinx-js-fork#124)
44+
- Added rendering for `typeOperator` (e.g., `let y: keyof x`)
45+
(pyodide/sphinx-js-fork#125)
46+
- Fixed crash when objects are reexported. (pyodide/sphinx-js-fork#126)
47+
- Added `jsdoc_tsconfig_path` which can specify the path to the
48+
`tsconfig.json` file that should be used. (pyodide/sphinx-js-fork#116)
49+
- Added a `js:interface` directive (pyodide/sphinx-js-fork#138).
50+
- Removed parentheses from xrefs to classes (pyodide/sphinx-js-fork#155).
51+
- Added a `:js:typealias:` directive (pyodide/sphinx-js-fork#156).
52+
- Added rendering for conditional, indexed access, inferred, mapped, optional,
53+
rest, and template litreal types (pyodide/sphinx-js-fork#157).
54+
- Added readonly prefix to readonly properties (pyodide/sphinx-js-fork#158).
55+
56+
### 4.0.0: (December 23rd, 2024)
57+
58+
- Drop support for Python 3.8.
59+
- Add support for Python 3.12 and 3.13.
60+
- Add support for Sphinx 8.x.x.
61+
- Get CI working again.
62+
- Drop pin for MarkupSafe. (#244)
63+
- Add dependabot checking for GitHub actions. (Christian Clauss)
64+
- Fix wheel contents to not include tests. (#241)
65+
66+
Thank you to Will Kahn-Greene and Christian Clauss!
67+
68+
### 3.2.2: (September 20th, 2023)
69+
70+
- Remove Sphinx upper-bound requirement. (#227)
71+
- Drop support for Python 3.7. (#228)
72+
73+
Thank you to Will Kahn-Greene!
74+
75+
### 3.2.1: (December 16th, 2022)
76+
77+
- Fix xrefs to static functions. (#178)
78+
- Add support for jsdoc 4.0.0. (#215)
79+
80+
Thank you to xsjad0 and Will Kahn-Greene!
81+
82+
### 3.2.0: (December 13th, 2022)
83+
84+
- Add "static" in front of static methods.
85+
- Pin Jinja2 and markupsafe versions. (#190)
86+
- Track dependencies; do not read all documents. This improves speed of
87+
incremental updates. (#194)
88+
- Support Python 3.10 and 3.11. (#186)
89+
- Support Sphinx >= 4.1.0. (#209)
90+
- Fix types warning for `js_source_path` configuration item. (#182)
91+
92+
Thank you Stefan 'hr' Berder, David Huggins-Daines, Nick Alexander,
93+
mariusschenzle, Erik Rose, lonnen, and Will Kahn-Greene!
94+
95+
### 3.1.2: (April 15th, 2021)
96+
97+
- Remove our declared dependency on `docutils` to work around the way pip's
98+
greedy dependency resolver reacts to the latest version of Sphinx. pip
99+
fails when pip-installing sphinx-js because pip sees our "any version of
100+
docutils" declaration first (which resolves greedily to the latest version,
101+
0.17) but later encounters Sphinx's apparently new `<0.17` constraint and
102+
gives up. We can revert this when pip's `--use-feature=2020-resolver`
103+
becomes the default.
104+
105+
### 3.1.1: (March 23rd, 2021)
106+
107+
- Rewrite large parts of the suffix tree that powers path lookup. This fixes
108+
several crashes.
109+
110+
### 3.1: (September 10th, 2020)
111+
112+
- Re-architect language analysis. There is now a well-documented intermediate
113+
representation between JSDoc- and TypeDoc-emitted JSON and the renderers.
114+
This should make it much faster to merge PRs.
115+
- Rewrite much of the TypeScript analysis engine so it feeds into the new IR.
116+
117+
- TypeScript analysis used to crash if your codebase contained any
118+
overloaded functions. This no longer happens; we now arbitrarily use only
119+
the first function signature of each overloaded function.
120+
- Add support for static properties on TS classes.
121+
- Support variadic args in TS.
122+
- Support intersection types (`foo & bar`) in TS.
123+
- Remove the "exported from" module links from classes and interfaces.
124+
Functions never had them. Let's see if we miss them.
125+
- Pathnames for TypeScript objects no longer spuriously use `~` after the
126+
filename path segment; now they use `.` as in JS.
127+
- More generally, TS pathnames are now just like JS ones. There is no more
128+
`external:` prefix in front of filenames or `module:` in front of
129+
namespace names.
130+
- TS analyzer no longer cares with the current working directory is.
131+
- Tests now assert only what they care about rather than being brittle to
132+
the point of prohibiting any change.
133+
134+
- No longer show args in the arg list that are utterly uninformative, lacking
135+
both description and type info.
136+
- Class attributes are now listed before methods unless manally ordered with
137+
`:members:`.
138+
139+
### 3.0.1: (August 10th, 2020)
140+
141+
- Don't crash when encountering a `../` prefix on an object path. This can
142+
happen behind the scenes when `root_for_relative_js_paths` is set inward
143+
of the JS code.
144+
145+
### 3.0: (July 14th, 2020)
146+
147+
- Make compatible with Sphinx 3, which requires Python 3.
148+
- Drop support for Python 2.
149+
- Make sphinx-js not care what the current working directory is, except for
150+
the TypeScript analyzer, which needs further work.
151+
- Properly RST-escape return types.
152+
153+
### 2.8: (September 16th, 2019)
154+
155+
- Display generic TypeScript types properly. Make fields come before methods.
156+
(Paul Grau)
157+
- Combine constructor and class documentation at the top TypeScript classes.
158+
(Sebastian Weigand)
159+
- Switch to pytest as the testrunner. (Sebastian Weigand)
160+
- Add optional caching of JSDoc output, for large codebases. (Patrick Browne)
161+
- Fix the display of union types in TypeScript. (Sebastian Weigand)
162+
- Fix parsing breakage that began in typedoc 0.14.0. (Paul Grau)
163+
- Fix a data-intake crash with TypeScript. (Cristiano Santos)
164+
165+
### 2.7.1: (November 16th, 2018)
166+
167+
- Fix a crash that would happen sometimes with UTF-8 on Windows. #67.
168+
- Always use conf.py's dir for JSDoc's working dir. #78. (Thomas Khyn)
169+
170+
### 2.7: (August 2nd, 2018))
171+
172+
- Add experimental TypeScript support. (Wim Yedema)
173+
174+
### 2.6: (July 26th, 2018)
175+
176+
- Add support for `@deprecated` and `@see`. (David Li)
177+
- Notice and document JS variadic params nicely. (David Li)
178+
- Add linter to codebase.
179+
180+
### 2.5: (April 20th, 2018)
181+
182+
- Use documented `@params` to help fill out the formal param list for a
183+
function. This keeps us from missing params that use destructuring. (flozz)
184+
- Improve error reporting when JSDoc is missing.
185+
- Add extracted default values to generated formal param lists. (flozz and
186+
erikrose)
187+
188+
### 2.4: (March 21, 2018)
189+
190+
- Support the `@example` tag. (lidavidm)
191+
- Work under Windows. Before, we could hardly find any documentation. (flozz)
192+
- Properly unwrap multiple-line JSDoc tags, even if they have Windows line
193+
endings. (Wim Yedema)
194+
- Drop support for Python 3.3, since Sphinx has also done so.
195+
- Fix build-time crash when using recommonmark (for Markdown support) under
196+
Sphinx >=1.7.1. (jamrizzi)
197+
198+
### 2.3.1: (January 11th, 2018)
199+
200+
- Find the `jsdoc` command on Windows, where it has a different name. Then
201+
patch up process communication so it doesn't hang.
202+
203+
### 2.3: (November 1st, 2017)
204+
205+
- Add the ability to say "\*" within the `autoclass :members:` option,
206+
meaning "and all the members that I didn't explicitly list".
207+
208+
### 2.2: (October 10th, 2017)
209+
210+
- Add `autofunction` support for `@callback` tags. (krassowski)
211+
- Add experimental `autofunction` support for `@typedef` tags. (krassowski)
212+
- Add a nice error message for when JSDoc can't find any JS files.
213+
- Pin six more tightly so `python_2_unicode_compatible` is sure to be around.
214+
215+
### 2.1: (August 30th, 2017)
216+
217+
- Allow multiple folders in `js_source_path`. This is useful for gradually
218+
migrating large projects, one folder at a time, to JSDoc. Introduce
219+
`root_for_relative_js_paths` to keep relative paths unambiguous in the
220+
face of multiple source paths.
221+
- Aggregate PathTaken errors, and report them all at once. This means you
222+
don't have to run JSDoc repeatedly while cleaning up large projects.
223+
- Fix a bytes-vs-strings issue that crashed on versions of Python 3 before
224+
3.6. (jhkennedy)
225+
- Tolerate JS files that have filename extensions other than ".js". Before,
226+
when combined with custom JSDoc configuration that ingested such files,
227+
incorrect object pathnames were generated, which led to spurious "No JSDoc
228+
documentation was found for object ..." errors.
229+
230+
### 2.0.1: (July 13th, 2017)
231+
232+
- Fix spurious syntax errors while loading large JSDoc output by writing it
233+
to a temp file first. (jhkennedy)
234+
235+
### 2.0: (May 4th, 2017)
236+
237+
- Deal with ambiguous object paths. Symbols with identical JSDoc longnames
238+
(such as two top-level things called "foo" in different files) will no
239+
longer have one shadow the other. Introduce an unambiguous path convention
240+
for referring to objects. Add a real parser to parse them rather than the
241+
dirty tricks we were using before. Backward compatibility breaks a little,
242+
because ambiguous references are now a fatal error, rather than quietly
243+
referring to the last definition JSDoc happened to encounter.
244+
- Index everything into a suffix tree so you can use any unique path suffix
245+
to refer to an object.
246+
- Other fallout of having a real parser:
247+
248+
- Stop supporting "-" as a namepath separator.
249+
- No longer spuriously translate escaped separators in namepaths into dots.
250+
- Otherwise treat paths and escapes properly. For example, we can now
251+
handle symbols that contain "(".
252+
253+
- Fix KeyError when trying to gather the constructor params of a plain old
254+
object labeled as a `@class`.
255+
256+
### 1.5.2: (March 22th, 2017)
257+
258+
- Fix crash while warning that a specified longname isn't found.
259+
260+
### 1.5.1: (March 20th, 2017)
261+
262+
- Sort `:members:` alphabetically when an order is not explicitly specified.
263+
264+
### 1.5: (March 17th, 2017)
265+
266+
- Add `:members:` option to `autoclass`.
267+
- Add `:private-members:` and `:exclude-members:` options to go with it.
268+
- Significantly refactor to allow directive classes to talk to each other.
269+
270+
### 1.4: (March 10th, 2017)
271+
272+
- Add `jsdoc_config_path` option.
273+
274+
### 1.3.1: (March 6th, 2017)
275+
276+
- Tolerate @args and other info field lines that are wrapped in the source
277+
code.
278+
- Cite the file and line of the source comment in Sphinx-emitted warnings and
279+
errors.
280+
281+
### 1.3: (February 21st, 2017)
282+
283+
- Add `autoattribute` directive.
284+
285+
### 1.2: (February 14th, 2017)
286+
287+
- Always do full rebuilds; don't leave pages stale when JS code has changed
288+
but the RSTs have not.
289+
- Make Python-3-compatible.
290+
- Add basic `autoclass` directive.
291+
292+
### 1.1: (February 13th, 2017)
293+
294+
- Add `:short-name:` option.
295+
296+
### 1.0: (February 7th, 2017)
297+
298+
- Initial release, with just `js:autofunction`

0 commit comments

Comments
 (0)