Skip to content

Commit bfb8e45

Browse files
Stephanie Wehnerclaude
andcommitted
Replace Sphinx-specific directives with standard RST links for GitHub
Sphinx :doc:, :ref:, and :code: directives don't render on GitHub's RST viewer. Convert all 56 instances across 12 doc files to standard RST hyperlinks (e.g. `Page <Page.rst>`_) and double-backtick inline code so links work when viewing .rst files directly on GitHub. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d346740 commit bfb8e45

12 files changed

Lines changed: 66 additions & 67 deletions

File tree

docs/ConfNodes.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ SimulaQron uses two configuration files:
55

66
* ``simulaqron_network.json`` — defines nodes, their socket ports, and network topology (described on this page)
77
* ``simulaqron_settings.json`` — configures the simulation backend, timeouts, and other settings
8-
(see :ref:`settings` in :doc:`GettingStarted`)
8+
(see the Settings section in `Getting Started <GettingStarted.rst>`_)
99

1010
-------------------------------------------
1111
Running all nodes on a single machine
@@ -221,7 +221,7 @@ SimulaQron can automatically generate certain well-known network topologies:
221221
:math:`n(n-1)/2` for :math:`n` nodes.
222222

223223
.. note:: Topology generation via the CLI is planned but not yet implemented. For now, specify topologies
224-
directly in the ``simulaqron_network.json`` file (see :ref:`network-topologies`).
224+
directly in the ``simulaqron_network.json`` file (see `Network topologies`_ below).
225225

226226
Along with setting up the network with the specified topology a .png figure is also generated and stored as
227227
config/topology.png. This is useful if a random network is used, to easily visualize the network used.
@@ -233,7 +233,7 @@ The network that is then started might look like this:
233233
:align: center
234234
:alt: Example network topology
235235

236-
To create a custom topology, see section :ref:`network-topologies`.
236+
To create a custom topology, see section `Network topologies`_ above.
237237

238238
--------------------------
239239
Starting multiple networks
@@ -251,5 +251,5 @@ To stop a specific network::
251251
.. note:: By default the network name is "default". To have multiple networks running at the same time the
252252
nodes cannot use the same port numbers.
253253

254-
The JSON configuration file can hold more than one network configuration. See :ref:`networkConfig` above for
254+
The JSON configuration file can hold more than one network configuration. See `Configuring the network`_ above for
255255
an example with multiple networks.

docs/Examples.rst

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,38 @@ SimulaQron offers three ways to write quantum network programs, from highest-lev
1717
directly to SimulaQron's virtual quantum nodes. This is Python-specific and more verbose,
1818
but gives full control over the simulation backend.
1919

20-
The examples below assume that you have already made your way through :doc:`GettingStarted`:
20+
The examples below assume that you have already made your way through `Getting Started <GettingStarted.rst>`_:
2121
you have the virtual node servers up and running.
2222

2323
-----------------
2424
New SDK examples
2525
-----------------
2626

27-
* :doc:`new-sdk/Overview` — Key concepts: ``NetQASMConnection``, ``EPRSocket``, ``flush()``, file structure
28-
* :doc:`new-sdk/Template` — Getting started: single-node and client-server templates
29-
* :doc:`new-sdk/CorrRNG` — EPR pairs between two nodes, correlated measurement
30-
* :doc:`new-sdk/Teleport` — Quantum teleportation with classical correction messages
31-
* :doc:`new-sdk/ExtendGHZ` — Three-party entanglement, multiple EPR sockets
32-
* :doc:`new-sdk/MidCircuitLogic` — Multiple ``flush()`` calls for mid-circuit classical decisions
27+
* `Overview <new-sdk/Overview.rst>`_ — Key concepts: ``NetQASMConnection``, ``EPRSocket``, ``flush()``, file structure
28+
* `Template <new-sdk/Template.rst>`_ — Getting started: single-node and client-server templates
29+
* `CorrRNG <new-sdk/CorrRNG.rst>`_ — EPR pairs between two nodes, correlated measurement
30+
* `Teleport <new-sdk/Teleport.rst>`_ — Quantum teleportation with classical correction messages
31+
* `ExtendGHZ <new-sdk/ExtendGHZ.rst>`_ — Three-party entanglement, multiple EPR sockets
32+
* `MidCircuitLogic <new-sdk/MidCircuitLogic.rst>`_ — Multiple ``flush()`` calls for mid-circuit classical decisions
3333

3434
---------------------
3535
Event-based examples
3636
---------------------
3737

38-
* :doc:`event-based/Overview` — Event-based programming model and state machines
39-
* :doc:`event-based/PingPong` — Classical ping-pong between two nodes
40-
* :doc:`event-based/PolitePingPong` — State-machine message dispatch pattern
41-
* :doc:`event-based/QuantumCorrRNG` — Quantum correlated RNG with state machine
42-
* :doc:`event-based/QuantumCorrRNGVerified` — Correlated RNG with verification protocol
38+
* `Overview <event-based/Overview.rst>`_ — Event-based programming model and state machines
39+
* `PingPong <event-based/PingPong.rst>`_ — Classical ping-pong between two nodes
40+
* `PolitePingPong <event-based/PolitePingPong.rst>`_ — State-machine message dispatch pattern
41+
* `QuantumCorrRNG <event-based/QuantumCorrRNG.rst>`_ — Quantum correlated RNG with state machine
42+
* `QuantumCorrRNGVerified <event-based/QuantumCorrRNGVerified.rst>`_ — Correlated RNG with verification protocol
4343

4444
---------------------
4545
Native mode examples
4646
---------------------
4747

48-
* :doc:`native-mode/Template` — Template for programming in native (Twisted) mode
49-
* :doc:`native-mode/CorrRng` — Correlated randomness using native mode
50-
* :doc:`native-mode/Teleport` — Teleportation using native mode
51-
* :doc:`native-mode/GraphState` — Distributing a graph state across four nodes
48+
* `Template <native-mode/Template.rst>`_ — Template for programming in native (Twisted) mode
49+
* `CorrRng <native-mode/CorrRng.rst>`_ — Correlated randomness using native mode
50+
* `Teleport <native-mode/Teleport.rst>`_ — Teleportation using native mode
51+
* `GraphState <native-mode/GraphState.rst>`_ — Distributing a graph state across four nodes
5252

5353
.. toctree::
5454
:hidden:

docs/GettingStarted.rst

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Now, we can install SimulaQron by simply typing::
2222

2323
pip3 install simulaqron
2424

25-
You can then make use of SimulaQron using the command :code:`simulaqron` in the terminal. For more information on how
25+
You can then make use of SimulaQron using the command ``simulaqron`` in the terminal. For more information on how
2626
to use this command see below or type::
2727

2828
simulaqron -h
@@ -45,7 +45,7 @@ Before delving into how to write any program yourself, let's first simply run on
4545
Remember from the Overview that SimulaQron has two parts: the first are the virtual node servers that simulate
4646
the hardware at each node as well as the quantum communication between them in a transparent manner.
4747
The second are the applications themselves which can be written in two ways: the direct way is to use the native
48-
mode using the Python Twisted framework connecting to the virtual node servers (see :doc:`Examples`),
48+
mode using the Python Twisted framework connecting to the virtual node servers (see `Examples <Examples.rst>`_),
4949
and the recommended way is to use the NetQASM library that calls the virtual nodes via the NetQASM interface.
5050
We will here illustrate how to use SimulaQron with the NetQASM library.
5151

@@ -59,14 +59,14 @@ the backend of SimulaQron simply type::
5959

6060
simulaqron start
6161

62-
.. warning:: Running :code:`simulaqron start` will be default start up servers on localhost (i.e., your own computer),
62+
.. warning:: Running ``simulaqron start`` will be default start up servers on localhost (i.e., your own computer),
6363
using port numbers between 8000 and 9000, to form the simulated quantum internet hardware. SimulaQron does not
6464
provide any access control to its simulated hardware, so you are responsible to securing access should this be
6565
relevant for you. You can also run the different simulated nodes on different computers. We do not take any
6666
responsibility for problems caused by SimulaQron.
6767

68-
For more information on what :code:`./cli/SimulaQron start` does, how to change the nodes and the ports of the network,
69-
the topology etc, see :doc:`ConfNodes`.
68+
For more information on what ``./cli/SimulaQron start`` does, how to change the nodes and the ports of the network,
69+
the topology etc, see `Configuring the Network <ConfNodes.rst>`_.
7070

7171
To stop the backend, simply type::
7272

@@ -93,7 +93,7 @@ Evidently, there would be classical means to achieve this trivial task chosen fo
9393

9494
* Both Alice and Bob measure their respective qubits to obtain a classical random number :math:`x \in \{0,1\}`.
9595

96-
The examples can be found in ``examples/new-sdk/`` (see :doc:`Examples` for the full list).
96+
The examples can be found in ``examples/new-sdk/`` (see `Examples <Examples.rst>`_ for the full list).
9797
Before seeing how this example works, let us simply run the code::
9898

9999
cd examples/new-sdk/corrRNG
@@ -170,7 +170,7 @@ Similarly the core of bobTest.py is::
170170
m1_val = int(m1)
171171
sim_conn.close()
172172

173-
For further examples, see :doc:`Examples` and :doc:`NetQASM` for the full SDK reference.
173+
For further examples, see `Examples <Examples.rst>`_ and `The NetQASM Interface <NetQASM.rst>`_ for the full SDK reference.
174174

175175
.. _settings:
176176

@@ -220,7 +220,7 @@ This command will create a file with the following configuration::
220220
"t1": 1.0
221221
}
222222

223-
Section :ref:`settings_fields` provides a description about each one of the configuration options in the file.
223+
The section `Settings Fields`_ below provides a description about each one of the configuration options in the file.
224224

225225
Alternatively, you can place the ``simulaqron_settings.json`` file in the folder ``~/.simulaqron`` (i.e. a folder
226226
named ``.simulaqron`` in your home folder). Doing so will make your settings persist across different projects you
@@ -268,7 +268,7 @@ The SimulaQron settings file contains a set of fields to control the configurati
268268
* ``t1``: T1 parameter to use when applying noise on the emulated qubits. This value is only used when the
269269
``noisy_qubit`` option is set to ``true``.
270270

271-
The default value of all these fields can be seen in the :ref:`settings` section.
271+
The default value of all these fields can be seen in the Settings_ section above.
272272

273273
.. note:: An application can become "stalled" in certain configurations, leaving the application to look "hung". This
274274
leads to a deadlock of the application. SimulaQron will wait for the configured time before considering the

docs/NetQASM.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ The NetQASM interface
22
=====================
33

44
SimulaQron applications are written using the **NetQASM SDK**. This page describes the core concepts and
5-
programming model. For complete working examples, see :doc:`Examples`.
5+
programming model. For complete working examples, see `Examples <Examples.rst>`_.
66

77
------------
88
Installation
@@ -91,7 +91,7 @@ You can call ``flush()`` multiple times on the same connection. This enables **m
9191
other_qubit.X() # conditional correction
9292
conn.flush()
9393

94-
See the mid-circuit logic example in :doc:`Examples` for a full demonstration.
94+
See the mid-circuit logic example in `Examples <Examples.rst>`_ for a full demonstration.
9595

9696
-----------------------
9797
Minimal example
@@ -173,7 +173,7 @@ receiving classical messages::
173173
conn.flush()
174174
conn.close()
175175

176-
See the :doc:`new-sdk/Template` page for how to set up the client and server, and the teleportation example
176+
See the `Template <new-sdk/Template.rst>`_ page for how to set up the client and server, and the teleportation example
177177
for a complete two-node program with classical messaging.
178178

179179
-----------------------
@@ -182,9 +182,9 @@ Configuration
182182

183183
Each program needs two configuration files in its directory:
184184

185-
* ``simulaqron_network.json`` — defines the nodes and their socket ports. See :doc:`ConfNodes` for details.
185+
* ``simulaqron_network.json`` — defines the nodes and their socket ports. See `Configuring the Network <ConfNodes.rst>`_ for details.
186186
* ``simulaqron_settings.json`` — configures the simulation backend and other settings. See the
187-
:ref:`settings` section in :doc:`GettingStarted`.
187+
Settings section in `Getting Started <GettingStarted.rst>`_.
188188

189189
The ``stabilizer`` backend is used by default and is recommended unless you need non-Clifford gates (use
190190
``qutip`` in that case).
@@ -193,6 +193,6 @@ The ``stabilizer`` backend is used by default and is recommended unless you need
193193
Further reading
194194
-----------------------
195195

196-
* :doc:`Examples` — complete working examples from simple to complex
197-
* :doc:`new-sdk/Overview` — detailed SDK concepts and file structure
196+
* `Examples <Examples.rst>`_ — complete working examples from simple to complex
197+
* `New SDK Overview <new-sdk/Overview.rst>`_ — detailed SDK concepts and file structure
198198
* `NetQASM library documentation <https://netqasm.readthedocs.io/en/latest/>`_

docs/Overview.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ In the light of the alternate interface below it may appear inefficient to expor
1515
the purpose of SimulaQron is precisely to explore and play with higher layer abstractions on top of any hardware, or
1616
its simulated version, SimulaQron. As such it is best to think of SimulaQron as a piece of simulated hardware with its
1717
own native interface, which we may first abstract into a higher level command language for programming. Examples of
18-
how to program SimulaQron in native mode can be found in :doc:`Examples`.
18+
how to program SimulaQron in native mode can be found in `Examples <Examples.rst>`_.
1919

2020
The second way to run applications is via a higher level interface, the NetQASM interface. If you want your
2121
applications to later use real quantum hardware more easily instead of SimulaQron, then this is the interface to use.
22-
Examples of how to program using the NetQASM can be found in :doc:`NetQASM`.
22+
Examples of how to program using the NetQASM can be found in `The NetQASM Interface <NetQASM.rst>`_.
2323

2424
.. image:: figs/netqasm_architecture.png
2525
:width: 500px
@@ -170,7 +170,7 @@ Automated tests
170170
^^^^^^^^^^^^^^^
171171

172172
There are number of automated tests that test many (but not all) of the features of SimulaQron and the NetQASM interface.
173-
See :doc:`GettingStarted` for how to run these.
173+
See `Getting Started <GettingStarted.rst>`_ for how to run these.
174174
Some of the automated tests use quantum tomography and are thus inherently probabilistic.
175175
Therefore if you see that one of these fails, you can try to run the test again and see if it is consistent.
176176
If the tests are to slow on your computer you can also run the short version, which skips the quantum tomography tests.

docs/event-based/Overview.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The event-based examples show how to structure quantum network protocols using
55
a **state machine** pattern. This is the recommended approach for protocols that
66
interleave classical negotiation with quantum operations.
77

8-
Prerequisites: you should understand the :doc:`../new-sdk/Overview` first.
8+
Prerequisites: you should understand the `New SDK Overview <../new-sdk/Overview.rst>`_ first.
99

1010
The state machine pattern
1111
-------------------------
@@ -68,11 +68,11 @@ The examples progress from purely classical to quantum:
6868

6969
* - Example
7070
- What it teaches
71-
* - :doc:`PingPong`
71+
* - `PingPong <PingPong.rst>`_
7272
- Basic event loop with simple if/else message handling
73-
* - :doc:`PolitePingPong`
73+
* - `PolitePingPong <PolitePingPong.rst>`_
7474
- Full state machine pattern with dispatch table
75-
* - :doc:`QuantumCorrRNG`
75+
* - `QuantumCorrRNG <QuantumCorrRNG.rst>`_
7676
- Adding quantum operations (EPR + measure) to event handlers
77-
* - :doc:`QuantumCorrRNGVerified`
77+
* - `QuantumCorrRNGVerified <QuantumCorrRNGVerified.rst>`_
7878
- Multi-state protocol: negotiate, quantum, then classical verification

docs/index.rst

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Quick start
2727
pip3 install simulaqron
2828

2929
2. **Configure your network** — create a ``simulaqron_network.json`` defining nodes and ports
30-
(see :doc:`ConfNodes`)
30+
(see `Configuring the Network <ConfNodes.rst>`_)
3131

3232
3. **Write your program** using the NetQASM SDK::
3333

@@ -42,17 +42,16 @@ Quick start
4242
print(int(m)) # read measurement result
4343
conn.close()
4444

45-
4. **Run examples** — see :doc:`Examples` for complete working programs
45+
4. **Run examples** — see `Examples <Examples.rst>`_ for complete working programs
4646

4747
Where to go next
4848
----------------
4949

50-
* **New to SimulaQron?** Start with :doc:`GettingStarted` for installation and your first example
51-
* **Want to write programs?** See :doc:`NetQASM` for the NetQASM SDK reference
52-
* **Looking for examples?** See :doc:`Examples` — new SDK, event-based, and native-mode examples
53-
* **Configuring networks and settings?** See :doc:`ConfNodes`
54-
* **Architecture and internals?** See :doc:`Overview`
55-
* **API reference?** See :ref:`modindex`
50+
* **New to SimulaQron?** Start with `Getting Started <GettingStarted.rst>`_ for installation and your first example
51+
* **Want to write programs?** See `The NetQASM Interface <NetQASM.rst>`_ for the NetQASM SDK reference
52+
* **Looking for examples?** See `Examples <Examples.rst>`_ — new SDK, event-based, and native-mode examples
53+
* **Configuring networks and settings?** See `Configuring the Network <ConfNodes.rst>`_
54+
* **Architecture and internals?** See `Overview <Overview.rst>`_
5655

5756
We also have a `paper <http://iopscience.iop.org/article/10.1088/2058-9565/aad56e>`_ describing the design of
5857
SimulaQron, freely available on `arxiv <https://arxiv.org/abs/1712.08032>`_.
@@ -72,6 +71,6 @@ SimulaQron, freely available on `arxiv <https://arxiv.org/abs/1712.08032>`_.
7271
Indices and tables
7372
==================
7473

75-
* :ref:`genindex`
76-
* :ref:`modindex`
77-
* :ref:`search`
74+
* Index
75+
* Module Index
76+
* Search

docs/native-mode/CorrRng.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Generate correlated randomness
22
==============================
33

44
.. note:: Native mode is the low-level Twisted interface. For new projects, the NetQASM SDK is recommended.
5-
See :doc:`../new-sdk/Overview` and the SDK version of this example at :doc:`../new-sdk/CorrRNG`.
5+
See `New SDK Overview <../new-sdk/Overview.rst>`_ and the SDK version of this example at `CorrRNG <../new-sdk/CorrRNG.rst>`_.
66

77
Having started the virtual quantum nodes, let us now run a simple test application, which already illustrates some of
88
the aspects in realizing protocols. Our objective will be to realize the following protocol which will generate 1

docs/native-mode/GraphState.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Distributing a graph state
22
==========================
33

44
.. note:: Native mode is the low-level Twisted interface. For new projects, the NetQASM SDK is recommended.
5-
See :doc:`../new-sdk/Overview`.
5+
See `New SDK Overview <../new-sdk/Overview.rst>`_.
66

77
Here we consider a more complicated example, where we have four parties; Alice, Bob, Charlie and David.
88
They will distribute a graph state and transform this with local operations and classical communication to make

docs/native-mode/Teleport.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ Teleporting a Qubit
22
===================
33

44
.. note:: Native mode is the low-level Twisted interface. For new projects, the NetQASM SDK is recommended.
5-
See :doc:`../new-sdk/Overview` and the SDK version of this example at :doc:`../new-sdk/Teleport`.
5+
See `New SDK Overview <../new-sdk/Overview.rst>`_ and the SDK version of this example at `Teleport <../new-sdk/Teleport.rst>`_.
66

77
Let's now consider a very simple protocol, in which Alice first generates an EPR pair with Bob, and then teleports
88
a qubit to Bob. To program it in SimulaQron's native mode, we will use the template described in
9-
:doc:`Template`.
9+
`Template <Template.rst>`_.
1010

1111
------------
1212
The protocol

0 commit comments

Comments
 (0)